There are many mobile users who want to have temporary access to the Internet using their computer devices at various locations. In order to provide network services to those user devices, visitor based networks (VBNs) are provided in various locations, such as hotels, airports and convention centers. Often users are required to register with VBN servers to use those visitor based networks.
Visitor based network (VBN) servers are being required to service increasingly ‘large’ local area networks (LANs), where the ‘size’ of the LAN is defined by the number of concurrently connected user devices, and/or the number of concurrent user registration events, and/or the volume of network traffic.
Servicing a LAN by a VBN server involves provisioning end-user devices and network infrastructure devices, performing authorization and possibly authentication tasks for the end-users, creating and maintaining status records representing end-user devices and network infrastructure devices, processing network traffic which flows through the LAN, from the LAN to the wide area network (WAN), and from the WAN to the LAN, and optionally billing for network access by the end-user devices. An example of such a VBN server is a SolutionIP™ VBN server from SolutionInc Limited. The Solution IP™ VBN server has a registration driver that manages registration of user devices. Registration data of a registered user device includes its authorization state, assigned IP address, and user device's Media Access Control (MAC) address. The registration driver has a set of assignable internet protocol (IP) address ranges for multiple routing realms, and assigns an IP address to a user device from such a relevant IP address range depending on a routing realm from which communication from the user device is received. The assignable IP address ranges include an authorization address range from which the registration driver assigns an IP address to a user device whose authorization request is received from an authorization assisting device. When an authorization assisting device sends to the VBN server an authorization request for access to the WAN by a requesting user device, an authorization module of the server processes the authorization request to generate an authorization response granting or denying the access to the WAN by the requesting user device based on the registration data in the registration data store and the information in the authorization request.
A VBN server, as with any computer system, can be modified and optimized in its software and/or hardware in order to perform a ‘larger’ task than would otherwise be possible. However, the efficacy of such scaling improvements is ultimately limited, because a single hardware/software system can never be optimized to an infinite degree. The Law of Diminishing Returns rapidly becomes a factor in such optimization efforts.
It is therefore desirable to approach the very large visitor-based network problem from a different direction: by applying more than one VBN server to a large network. Efforts to endlessly optimize the VBN server's hardware/software system would be unnecessary in this scheme, because scaling would be achieved by simply adding additional hardware/software systems. The potential degree of such scaling is obviously orders of magnitude greater than the degree of scaling that could ever be achieved by observing the traditional limitations of a single VBN server per network.
In the past, such multi-VBN-server scaling has been performed by effectively segmenting the LAN into one or more distinct LANs, by rearranging the LAN's physical or logical network topology, and then applying a VBN server to each new segmented portion of the original LAN. Each VBN server thus services a LAN which has been ‘shrunk’ in order to meet the VBN server's capabilities.
However, the alteration of a public access LAN's physical or logical topology is almost always undesirable, and often simply unacceptable, to the owner/operator of the LAN, and is occasionally unfeasible due to the composition of the LAN.
On the other hand, when multiple computers are used, it is known to provide a network load balancer. However, there is no known technique that performs load balancing with VBN servers. A network load balancer used in a conventional computer network is a software agent which resides between the originator of a service request, i.e., an end-user device, and a collection of network servers each of which is capable of responding to that request. The load balancing agent decides to which of the servers the request should be sent, based upon various factors such as the current business of each of the servers, and then forwards the request to the selected server. The load balancing agent thus acts as an intermediary between the originator of the request and the servers.
Also, numerous techniques exist for implementing a form of network load sharing with network infrastructure devices, such as switches, by implementing various forms of Link aggregation. Link aggregation is a broad term which refers to assorted means of traffic flow control, including the direction of specific types of network traffic into particular network connections, such as switch ports. There are standards-based techniques, such as 802.3ad, and assorted semi-proprietary methods implemented by major hardware vendors. These techniques often require a special control protocol, such as link aggregation control protocol (LACP). The use of such control protocols makes the use of these methods of Link aggregation with VBN servers difficult, or at least impractical.
Also, numerous types and applications of computer clustering exist. However, a common limitation of computer clustering is the need for software running on each member of the cluster to be able to interact with other members of the cluster, for the purposes of responsibility delegation, cooperation, and fault tolerance. Since the possible responsibilities of an arbitrary computer system are effectively infinite, there is no boilerplate clustering solution which can be applied to satisfy all of the requirements of all computer systems. Therefore, there is no clustering solution available which can be applied to VBN servers in order to satisfy the peculiar requirements of VBN servers which perform specialized processing upon network traffic, and maintain their own types of data in their own unique ways.
Therefore, it is desirable to provide a mechanism that allows use of multiple VBN servers that can service a LAN, without requiring modifications to the LAN.